feat: smart testing mode — skip Playwright for API/backend features #174
+186
−14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this does
Adds a "Browser Testing" setting with two modes:
This saves ~100-300MB of memory per agent when testing features that don't need a browser, which adds up quickly in parallel mode.
How it works
A new
should_use_playwright()function inclient.pychecks the feature's category against a list of backend keywords (api,backend,database,db,server,endpoint,service). If the category matches, Playwright MCP server and tools are excluded from that agent session.The setting flows through the full stack:
Changes
Backend (8 files):
client.py—should_use_playwright()function, conditional Playwright inclusionagent.py— Feature category lookup from DB when in smart modeautonomous_agent_demo.py—--testing-modeCLI flagparallel_orchestrator.py— Pass testing_mode to subprocess commandsserver/routers/agent.py— Read testing_mode from settings, pass to managerserver/routers/settings.py— Persist testing_mode settingserver/schemas.py— Validation, request/response schemasserver/services/process_manager.py— Store and forward testing_modeFrontend (3 files):
SettingsModal.tsx— Full/Smart toggle buttons (disabled when YOLO is on)useProjects.ts— Default settingtypes.ts— TypeScript typesTest plan